home *** CD-ROM | disk | FTP | other *** search
/ Game Programming in C++ - Start to Finish / GameProgrammingS.iso / developer_install / CEGUISDK-0.4.1-VC6-Native.exe / {app} / include / elements / CEGUIItemEntry.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-07-10  |  3.5 KB  |  128 lines

  1. /************************************************************************
  2.     filename:     CEGUIItemEntry.h
  3.     created:    31/3/2005
  4.     author:        Tomas Lindquist Olsen (based on code by Paul D Turner)
  5.     
  6.     purpose:    Interface to base class for ItemEntry widget
  7. *************************************************************************/
  8. /*************************************************************************
  9.     Crazy Eddie's GUI System (http://www.cegui.org.uk)
  10.     Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
  11.  
  12.     This library is free software; you can redistribute it and/or
  13.     modify it under the terms of the GNU Lesser General Public
  14.     License as published by the Free Software Foundation; either
  15.     version 2.1 of the License, or (at your option) any later version.
  16.  
  17.     This library is distributed in the hope that it will be useful,
  18.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20.     Lesser General Public License for more details.
  21.  
  22.     You should have received a copy of the GNU Lesser General Public
  23.     License along with this library; if not, write to the Free Software
  24.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  25. *************************************************************************/
  26. #ifndef _CEGUIItemEntry_h_
  27. #define _CEGUIItemEntry_h_
  28.  
  29. #include "CEGUIBase.h"
  30. #include "CEGUIWindow.h"
  31.  
  32.  
  33. #if defined(_MSC_VER)
  34. #    pragma warning(push)
  35. #    pragma warning(disable : 4251)
  36. #endif
  37.  
  38.  
  39. // Start of CEGUI namespace section
  40. namespace CEGUI
  41. {
  42.  
  43. /*!
  44. \brief
  45.     Base class for item type widgets.
  46. */
  47. class CEGUIEXPORT ItemEntry : public Window
  48. {
  49. public:
  50.     /*************************************************************************
  51.         Abstract Implementation Functions (must be provided by derived class)
  52.     *************************************************************************/
  53.     /*!
  54.     \brief
  55.         Return the "optimal" size for the item
  56.     
  57.     \return
  58.         Size describing the size in pixel that this ItemEntry's content requires
  59.         for non-clipped rendering
  60.     */
  61.     virtual Size getItemPixelSize(void) = 0;
  62.  
  63.     /*************************************************************************
  64.         Construction and Destruction
  65.     *************************************************************************/
  66.     /*!
  67.     \brief
  68.         Constructor for ItemEntry objects
  69.     */
  70.     ItemEntry(const String& type, const String& name);
  71.  
  72.  
  73.     /*!
  74.     \brief
  75.         Destructor for ItemEntry objects
  76.     */
  77.     virtual ~ItemEntry(void);
  78.  
  79.  
  80. protected:
  81.     /*************************************************************************
  82.         Implementation Functions
  83.     *************************************************************************/
  84.     /*!
  85.     \brief
  86.         Add itementry specific events
  87.     */
  88.     void    addItemEntryEvents(void);
  89.  
  90.  
  91.     /*!
  92.     \brief
  93.         Perform the actual rendering for this Window.
  94.  
  95.     \return
  96.         Nothing
  97.     */
  98.     virtual void    populateRenderCahce() {};
  99.  
  100.  
  101.     /*!
  102.     \brief
  103.         Return whether this window was inherited from the given class name at some point in the inheritance heirarchy.
  104.  
  105.     \param class_name
  106.         The class name that is to be checked.
  107.  
  108.     \return
  109.         true if this window was inherited from \a class_name. false if not.
  110.     */
  111.     virtual bool    testClassName_impl(const String& class_name) const
  112.     {
  113.         if (class_name==(const utf8*)"ItemEntry")    return true;
  114.         return Window::testClassName_impl(class_name);
  115.     }
  116.    
  117. };
  118.  
  119. } // End of  CEGUI namespace section
  120.  
  121.  
  122. #if defined(_MSC_VER)
  123. #    pragma warning(pop)
  124. #endif
  125.  
  126.  
  127. #endif    // end of guard _CEGUIItemEntry_h_
  128.